home *** CD-ROM | disk | FTP | other *** search
/ QRZ! Ham Radio 3 / QRZ Ham Radio Callsign Database - Volume 3.iso / world / mac / contest / dxmapsea.hqx / DX Map 1.1.1 / coords.p < prev    next >
Text File  |  1992-09-05  |  1KB  |  50 lines

  1. unit coords;
  2. interface
  3.     uses
  4.         HyperXCmd;
  5.  
  6.     procedure main (paramPtr: XCmdPtr);
  7.  
  8. implementation
  9.  
  10.     procedure main;
  11.         const
  12.             pi = 3.141592654;
  13.         var
  14.             call, country: string;
  15.             tstr, str: Str255;
  16.             c, d, e, clat, clon, lat, lon, slat, sclat, cclat: real;
  17.             x: extended;
  18.     begin
  19.         ZeroToPas(paramPtr, paramPtr^.params[1]^, str);
  20.         x := StrToExt(paramPtr, str);
  21.         clat := x * pi / 180;
  22.         ZeroToPas(paramPtr, paramPtr^.params[2]^, str);
  23.         x := StrToExt(paramPtr, str);
  24.         clon := x * pi / 180;
  25.         ZeroToPas(paramPtr, paramPtr^.params[3]^, str);
  26.         x := StrToExt(paramPtr, str);
  27.         lat := x * pi / 180;
  28.         ZeroToPas(paramPtr, paramPtr^.params[4]^, str);
  29.         x := StrToExt(paramPtr, str);
  30.         lon := x * pi / 180;
  31.         slat := sin(lat);
  32.         sclat := sin(clat);
  33.         cclat := cos(clat);
  34.         e := sclat * slat + cclat * cos(lat) * cos(lon - clon);
  35.         d := -arctan(e / sqrt(1 - e * e)) + pi / 2;
  36.         c := (slat - sclat * e) / (cclat * sin(d));
  37.         c := -arctan(c / sqrt(1 - c * c)) + pi / 2;
  38.         if sin(lon - clon) < 0 then
  39.             c := 2 * pi - c;
  40.         x := d * 3955.76;
  41.         ExtToStr(paramPtr, x, str);
  42.         x := d * 6366.19;
  43.         ExtToStr(paramPtr, x, tstr);
  44.         str := concat(str, ', ', tstr);
  45.         x := c * 180 / pi;
  46.         ExtToStr(paramPtr, x, tstr);
  47.         str := concat(str, ', ', tstr);
  48.         paramPtr^.returnValue := PasToZero(paramPtr, str);
  49.     end; { main }
  50. end. { implementation }